using Furion.DatabaseAccessor;

using Microsoft.EntityFrameworkCore;

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace Abc.Core.Entities
{
    /// <summary>
    /// 国家
    /// </summary>
    public class Country : Entity<int>, IEntitySeedData<Country>
    {
        /// <summary>
        /// 国家名称
        /// </summary>
        [MaxLength(100)]
        [Comment("国家名称")]
        public string Name { get; set; }

        /// <summary>
        /// 国家代码
        /// </summary>
        [MaxLength(100)]
        [Comment("国家代码")]
        public string Code { get; set; }

        public IEnumerable<Country> HasData(DbContext dbContext, Type dbContextLocator)
        {
            var datas = new List<Country>();

            #region 数据

            //datas.Add(new Country() { Id = 1, Code = "China", Name = "中国" });
            //datas.Add(new Country() { Id = 2, Code = "ALB", Name = "阿尔巴尼亚" });
            //datas.Add(new Country() { Id = 3, Code = "DZA", Name = "阿尔及利亚" });
            //datas.Add(new Country() { Id = 4, Code = "AFG", Name = "阿富汗" });
            //datas.Add(new Country() { Id = 5, Code = "ARG", Name = "阿根廷" });
            //datas.Add(new Country() { Id = 6, Code = "ARE", Name = "阿拉伯联合酋长国" });
            //datas.Add(new Country() { Id = 7, Code = "ABW", Name = "阿鲁巴" });
            //datas.Add(new Country() { Id = 8, Code = "OMN", Name = "阿曼" });
            //datas.Add(new Country() { Id = 9, Code = "AZE", Name = "阿塞拜疆" });
            //datas.Add(new Country() { Id = 10, Code = "ASC", Name = "阿森松岛" });
            //datas.Add(new Country() { Id = 11, Code = "EGY", Name = "埃及" });
            //datas.Add(new Country() { Id = 12, Code = "ETH", Name = "埃塞俄比亚" });
            //datas.Add(new Country() { Id = 13, Code = "IRL", Name = "爱尔兰" });
            //datas.Add(new Country() { Id = 14, Code = "EST", Name = "爱沙尼亚" });
            //datas.Add(new Country() { Id = 15, Code = "AND", Name = "安道尔" });
            //datas.Add(new Country() { Id = 16, Code = "AGO", Name = "安哥拉" });
            //datas.Add(new Country() { Id = 17, Code = "AIA", Name = "安圭拉" });
            //datas.Add(new Country() { Id = 18, Code = "ATG", Name = "安提瓜岛和巴布达" });
            //datas.Add(new Country() { Id = 19, Code = "AUT", Name = "奥地利" });
            //datas.Add(new Country() { Id = 20, Code = "ALA", Name = "奥兰群岛" });
            //datas.Add(new Country() { Id = 21, Code = "AUS", Name = "澳大利亚" });
            //datas.Add(new Country() { Id = 22, Code = "BRB", Name = "巴巴多斯岛" });
            //datas.Add(new Country() { Id = 23, Code = "PNG", Name = "巴布亚新几内亚" });
            //datas.Add(new Country() { Id = 24, Code = "BHS", Name = "巴哈马" });
            //datas.Add(new Country() { Id = 25, Code = "PAK", Name = "巴基斯坦" });
            //datas.Add(new Country() { Id = 26, Code = "PRY", Name = "巴拉圭" });
            //datas.Add(new Country() { Id = 27, Code = "PSE", Name = "巴勒斯坦" });
            //datas.Add(new Country() { Id = 28, Code = "BHR", Name = "巴林" });
            //datas.Add(new Country() { Id = 29, Code = "PAN", Name = "巴拿马" });
            //datas.Add(new Country() { Id = 30, Code = "BRA", Name = "巴西" });
            //datas.Add(new Country() { Id = 31, Code = "BLR", Name = "白俄罗斯" });
            //datas.Add(new Country() { Id = 32, Code = "BMU", Name = "百慕大" });
            //datas.Add(new Country() { Id = 33, Code = "BGR", Name = "保加利亚" });
            //datas.Add(new Country() { Id = 34, Code = "MNP", Name = "北马里亚纳群岛" });
            //datas.Add(new Country() { Id = 35, Code = "BEN", Name = "贝宁" });
            //datas.Add(new Country() { Id = 36, Code = "BEL", Name = "比利时" });
            //datas.Add(new Country() { Id = 37, Code = "ISL", Name = "冰岛" });
            //datas.Add(new Country() { Id = 38, Code = "PRI", Name = "波多黎各" });
            //datas.Add(new Country() { Id = 39, Code = "POL", Name = "波兰" });
            //datas.Add(new Country() { Id = 40, Code = "BIH", Name = "波斯尼亚和黑塞哥维那" });
            //datas.Add(new Country() { Id = 41, Code = "BOL", Name = "玻利维亚" });
            //datas.Add(new Country() { Id = 42, Code = "BLZ", Name = "伯利兹" });
            //datas.Add(new Country() { Id = 43, Code = "BWA", Name = "博茨瓦纳" });
            //datas.Add(new Country() { Id = 44, Code = "BTN", Name = "不丹" });
            //datas.Add(new Country() { Id = 45, Code = "BFA", Name = "布基纳法索" });
            //datas.Add(new Country() { Id = 46, Code = "BDI", Name = "布隆迪" });
            //datas.Add(new Country() { Id = 47, Code = "BVT", Name = "布韦岛" });
            //datas.Add(new Country() { Id = 48, Code = "PRK", Name = "朝鲜" });
            //datas.Add(new Country() { Id = 49, Code = "DNK", Name = "丹麦" });
            //datas.Add(new Country() { Id = 50, Code = "DEU", Name = "德国" });
            //datas.Add(new Country() { Id = 51, Code = "TLS", Name = "东帝汶" });
            //datas.Add(new Country() { Id = 52, Code = "TGO", Name = "多哥" });
            //datas.Add(new Country() { Id = 53, Code = "DMA", Name = "多米尼加" });
            //datas.Add(new Country() { Id = 54, Code = "DOM", Name = "多米尼加共和国" });
            //datas.Add(new Country() { Id = 55, Code = "RUS", Name = "俄罗斯" });
            //datas.Add(new Country() { Id = 56, Code = "ECU", Name = "厄瓜多尔" });
            //datas.Add(new Country() { Id = 57, Code = "ERI", Name = "厄立特里亚" });
            //datas.Add(new Country() { Id = 58, Code = "FRA", Name = "法国" });
            //datas.Add(new Country() { Id = 59, Code = "FRO", Name = "法罗群岛" });
            //datas.Add(new Country() { Id = 60, Code = "PYF", Name = "法属波利尼西亚" });
            //datas.Add(new Country() { Id = 61, Code = "GUF", Name = "法属圭亚那" });
            //datas.Add(new Country() { Id = 62, Code = "ATF", Name = "法属南部领地" });
            //datas.Add(new Country() { Id = 63, Code = "VAT", Name = "梵蒂冈" });
            //datas.Add(new Country() { Id = 64, Code = "PHL", Name = "菲律宾" });
            //datas.Add(new Country() { Id = 65, Code = "FJI", Name = "斐济" });
            //datas.Add(new Country() { Id = 66, Code = "FIN", Name = "芬兰" });
            //datas.Add(new Country() { Id = 67, Code = "CPV", Name = "佛得角" });
            //datas.Add(new Country() { Id = 68, Code = "FLK", Name = "弗兰克群岛" });
            //datas.Add(new Country() { Id = 69, Code = "GMB", Name = "冈比亚" });
            //datas.Add(new Country() { Id = 70, Code = "COG", Name = "刚果" });
            //datas.Add(new Country() { Id = 71, Code = "COD", Name = "刚果民主共和国" });
            //datas.Add(new Country() { Id = 72, Code = "COL", Name = "哥伦比亚" });
            //datas.Add(new Country() { Id = 73, Code = "CRI", Name = "哥斯达黎加" });
            //datas.Add(new Country() { Id = 74, Code = "GGY", Name = "格恩西岛" });
            //datas.Add(new Country() { Id = 75, Code = "GRD", Name = "格林纳达" });
            //datas.Add(new Country() { Id = 76, Code = "GRL", Name = "格陵兰" });
            //datas.Add(new Country() { Id = 77, Code = "CUB", Name = "古巴" });
            //datas.Add(new Country() { Id = 78, Code = "GLP", Name = "瓜德罗普" });
            //datas.Add(new Country() { Id = 79, Code = "GUM", Name = "关岛" });
            //datas.Add(new Country() { Id = 80, Code = "GUY", Name = "圭亚那" });
            //datas.Add(new Country() { Id = 81, Code = "KAZ", Name = "哈萨克斯坦" });
            //datas.Add(new Country() { Id = 82, Code = "HTI", Name = "海地" });
            //datas.Add(new Country() { Id = 83, Code = "KOR", Name = "韩国" });
            //datas.Add(new Country() { Id = 84, Code = "NLD", Name = "荷兰" });
            //datas.Add(new Country() { Id = 85, Code = "ANT", Name = "荷属安地列斯" });
            //datas.Add(new Country() { Id = 86, Code = "HMD", Name = "赫德和麦克唐纳群岛" });
            //datas.Add(new Country() { Id = 87, Code = "HND", Name = "洪都拉斯" });
            //datas.Add(new Country() { Id = 88, Code = "KIR", Name = "基里巴斯" });
            //datas.Add(new Country() { Id = 89, Code = "DJI", Name = "吉布提" });
            //datas.Add(new Country() { Id = 90, Code = "KGZ", Name = "吉尔吉斯斯坦" });
            //datas.Add(new Country() { Id = 91, Code = "GIN", Name = "几内亚" });
            //datas.Add(new Country() { Id = 92, Code = "GNB", Name = "几内亚比绍" });
            //datas.Add(new Country() { Id = 93, Code = "CAN", Name = "加拿大" });
            //datas.Add(new Country() { Id = 94, Code = "GHA", Name = "加纳" });
            //datas.Add(new Country() { Id = 95, Code = "GAB", Name = "加蓬" });
            //datas.Add(new Country() { Id = 96, Code = "KHM", Name = "柬埔寨" });
            //datas.Add(new Country() { Id = 97, Code = "CZE", Name = "捷克共和国" });
            //datas.Add(new Country() { Id = 98, Code = "ZWE", Name = "津巴布韦" });
            //datas.Add(new Country() { Id = 99, Code = "CMR", Name = "喀麦隆" });
            //datas.Add(new Country() { Id = 100, Code = "QAT", Name = "卡塔尔" });
            //datas.Add(new Country() { Id = 101, Code = "CYM", Name = "开曼群岛" });
            //datas.Add(new Country() { Id = 102, Code = "CCK", Name = "科科斯群岛" });
            //datas.Add(new Country() { Id = 103, Code = "COM", Name = "科摩罗" });
            //datas.Add(new Country() { Id = 104, Code = "CIV", Name = "科特迪瓦" });
            //datas.Add(new Country() { Id = 105, Code = "KWT", Name = "科威特" });
            //datas.Add(new Country() { Id = 106, Code = "HRV", Name = "克罗地亚" });
            //datas.Add(new Country() { Id = 107, Code = "KEN", Name = "肯尼亚" });
            //datas.Add(new Country() { Id = 108, Code = "COK", Name = "库克群岛" });
            //datas.Add(new Country() { Id = 109, Code = "LVA", Name = "拉脱维亚" });
            //datas.Add(new Country() { Id = 110, Code = "LSO", Name = "莱索托" });
            //datas.Add(new Country() { Id = 111, Code = "LAO", Name = "老挝" });
            //datas.Add(new Country() { Id = 112, Code = "LBN", Name = "黎巴嫩" });
            //datas.Add(new Country() { Id = 113, Code = "LTU", Name = "立陶宛" });
            //datas.Add(new Country() { Id = 114, Code = "LBR", Name = "利比里亚" });
            //datas.Add(new Country() { Id = 115, Code = "LBY", Name = "利比亚" });
            //datas.Add(new Country() { Id = 116, Code = "LIE", Name = "列支敦士登" });
            //datas.Add(new Country() { Id = 117, Code = "REU", Name = "留尼旺岛" });
            //datas.Add(new Country() { Id = 118, Code = "LUX", Name = "卢森堡" });
            //datas.Add(new Country() { Id = 119, Code = "RWA", Name = "卢旺达" });
            //datas.Add(new Country() { Id = 120, Code = "ROU", Name = "罗马尼亚" });
            //datas.Add(new Country() { Id = 121, Code = "MDG", Name = "马达加斯加" });
            //datas.Add(new Country() { Id = 122, Code = "MDV", Name = "马尔代夫" });
            //datas.Add(new Country() { Id = 123, Code = "MLT", Name = "马耳他" });
            //datas.Add(new Country() { Id = 124, Code = "MWI", Name = "马拉维" });
            //datas.Add(new Country() { Id = 125, Code = "MYS", Name = "马来西亚" });
            //datas.Add(new Country() { Id = 126, Code = "MLI", Name = "马里" });
            //datas.Add(new Country() { Id = 127, Code = "MKD", Name = "马其顿" });
            //datas.Add(new Country() { Id = 128, Code = "MHL", Name = "马绍尔群岛" });
            //datas.Add(new Country() { Id = 129, Code = "MTQ", Name = "马提尼克" });
            //datas.Add(new Country() { Id = 130, Code = "MYT", Name = "马约特岛" });
            //datas.Add(new Country() { Id = 131, Code = "IMN", Name = "曼岛" });
            //datas.Add(new Country() { Id = 132, Code = "MUS", Name = "毛里求斯" });
            //datas.Add(new Country() { Id = 133, Code = "MRT", Name = "毛里塔尼亚" });
            //datas.Add(new Country() { Id = 134, Code = "USA", Name = "美国" });
            //datas.Add(new Country() { Id = 135, Code = "ASM", Name = "美属萨摩亚" });
            //datas.Add(new Country() { Id = 136, Code = "UMI", Name = "美属外岛" });
            //datas.Add(new Country() { Id = 137, Code = "MNG", Name = "蒙古" });
            //datas.Add(new Country() { Id = 138, Code = "MSR", Name = "蒙特塞拉特" });
            //datas.Add(new Country() { Id = 139, Code = "BGD", Name = "孟加拉" });
            //datas.Add(new Country() { Id = 140, Code = "PER", Name = "秘鲁" });
            //datas.Add(new Country() { Id = 141, Code = "FSM", Name = "密克罗尼西亚" });
            //datas.Add(new Country() { Id = 142, Code = "MMR", Name = "缅甸" });
            //datas.Add(new Country() { Id = 143, Code = "MDA", Name = "摩尔多瓦" });
            //datas.Add(new Country() { Id = 144, Code = "MAR", Name = "摩洛哥" });
            //datas.Add(new Country() { Id = 145, Code = "MCO", Name = "摩纳哥" });
            //datas.Add(new Country() { Id = 146, Code = "MOZ", Name = "莫桑比克" });
            //datas.Add(new Country() { Id = 147, Code = "MEX", Name = "墨西哥" });
            //datas.Add(new Country() { Id = 148, Code = "NAM", Name = "纳米比亚" });
            //datas.Add(new Country() { Id = 149, Code = "ZAF", Name = "南非" });
            //datas.Add(new Country() { Id = 150, Code = "ATA", Name = "南极洲" });
            //datas.Add(new Country() { Id = 151, Code = "SGS", Name = "南乔治亚和南桑德威奇群岛" });
            //datas.Add(new Country() { Id = 152, Code = "NRU", Name = "瑙鲁" });
            //datas.Add(new Country() { Id = 153, Code = "NPL", Name = "尼泊尔" });
            //datas.Add(new Country() { Id = 154, Code = "NIC", Name = "尼加拉瓜" });
            //datas.Add(new Country() { Id = 155, Code = "NER", Name = "尼日尔" });
            //datas.Add(new Country() { Id = 156, Code = "NGA", Name = "尼日利亚" });
            //datas.Add(new Country() { Id = 157, Code = "NIU", Name = "纽埃" });
            //datas.Add(new Country() { Id = 158, Code = "NOR", Name = "挪威" });
            //datas.Add(new Country() { Id = 159, Code = "NFK", Name = "诺福克" });
            //datas.Add(new Country() { Id = 160, Code = "PLW", Name = "帕劳群岛" });
            //datas.Add(new Country() { Id = 161, Code = "PCN", Name = "皮特凯恩" });
            //datas.Add(new Country() { Id = 162, Code = "PRT", Name = "葡萄牙" });
            //datas.Add(new Country() { Id = 163, Code = "GEO", Name = "乔治亚" });
            //datas.Add(new Country() { Id = 164, Code = "JPN", Name = "日本" });
            //datas.Add(new Country() { Id = 165, Code = "SWE", Name = "瑞典" });
            //datas.Add(new Country() { Id = 166, Code = "CHE", Name = "瑞士" });
            //datas.Add(new Country() { Id = 167, Code = "SLV", Name = "萨尔瓦多" });
            //datas.Add(new Country() { Id = 168, Code = "WSM", Name = "萨摩亚" });
            //datas.Add(new Country() { Id = 169, Code = "SCG", Name = "塞尔维亚,黑山" });
            //datas.Add(new Country() { Id = 170, Code = "SLE", Name = "塞拉利昂" });
            //datas.Add(new Country() { Id = 171, Code = "SEN", Name = "塞内加尔" });
            //datas.Add(new Country() { Id = 172, Code = "CYP", Name = "塞浦路斯" });
            //datas.Add(new Country() { Id = 173, Code = "SYC", Name = "塞舌尔" });
            //datas.Add(new Country() { Id = 174, Code = "SAU", Name = "沙特阿拉伯" });
            //datas.Add(new Country() { Id = 175, Code = "CXR", Name = "圣诞岛" });
            //datas.Add(new Country() { Id = 176, Code = "STP", Name = "圣多美和普林西比" });
            //datas.Add(new Country() { Id = 177, Code = "SHN", Name = "圣赫勒拿" });
            //datas.Add(new Country() { Id = 178, Code = "KNA", Name = "圣基茨和尼维斯" });
            //datas.Add(new Country() { Id = 179, Code = "LCA", Name = "圣卢西亚" });
            //datas.Add(new Country() { Id = 180, Code = "SMR", Name = "圣马力诺" });
            //datas.Add(new Country() { Id = 181, Code = "SPM", Name = "圣皮埃尔和米克隆群岛" });
            //datas.Add(new Country() { Id = 182, Code = "VCT", Name = "圣文森特和格林纳丁斯" });
            //datas.Add(new Country() { Id = 183, Code = "LKA", Name = "斯里兰卡" });
            //datas.Add(new Country() { Id = 184, Code = "SVK", Name = "斯洛伐克" });
            //datas.Add(new Country() { Id = 185, Code = "SVN", Name = "斯洛文尼亚" });
            //datas.Add(new Country() { Id = 186, Code = "SJM", Name = "斯瓦尔巴和扬马廷" });
            //datas.Add(new Country() { Id = 187, Code = "SWZ", Name = "斯威士兰" });
            //datas.Add(new Country() { Id = 188, Code = "SDN", Name = "苏丹" });
            //datas.Add(new Country() { Id = 189, Code = "SUR", Name = "苏里南" });
            //datas.Add(new Country() { Id = 190, Code = "SLB", Name = "所罗门群岛" });
            //datas.Add(new Country() { Id = 191, Code = "SOM", Name = "索马里" });
            //datas.Add(new Country() { Id = 192, Code = "TJK", Name = "塔吉克斯坦" });
            //datas.Add(new Country() { Id = 193, Code = "THA", Name = "泰国" });
            //datas.Add(new Country() { Id = 194, Code = "TZA", Name = "坦桑尼亚" });
            //datas.Add(new Country() { Id = 195, Code = "TON", Name = "汤加" });
            //datas.Add(new Country() { Id = 196, Code = "TCA", Name = "特克斯和凯克特斯群岛" });
            //datas.Add(new Country() { Id = 197, Code = "TAA", Name = "特里斯坦达昆哈" });
            //datas.Add(new Country() { Id = 198, Code = "TTO", Name = "特立尼达和多巴哥" });
            //datas.Add(new Country() { Id = 199, Code = "TUN", Name = "突尼斯" });
            //datas.Add(new Country() { Id = 200, Code = "TUV", Name = "图瓦卢" });
            //datas.Add(new Country() { Id = 201, Code = "TUR", Name = "土耳其" });
            //datas.Add(new Country() { Id = 202, Code = "TKM", Name = "土库曼斯坦" });
            //datas.Add(new Country() { Id = 203, Code = "TKL", Name = "托克劳" });
            //datas.Add(new Country() { Id = 204, Code = "WLF", Name = "瓦利斯和福图纳" });
            //datas.Add(new Country() { Id = 205, Code = "VUT", Name = "瓦努阿图" });
            //datas.Add(new Country() { Id = 206, Code = "GTM", Name = "危地马拉" });
            //datas.Add(new Country() { Id = 207, Code = "VIR", Name = "维尔京群岛，美属" });
            //datas.Add(new Country() { Id = 208, Code = "VGB", Name = "维尔京群岛，英属" });
            //datas.Add(new Country() { Id = 209, Code = "VEN", Name = "委内瑞拉" });
            //datas.Add(new Country() { Id = 210, Code = "BRN", Name = "文莱" });
            //datas.Add(new Country() { Id = 211, Code = "UGA", Name = "乌干达" });
            //datas.Add(new Country() { Id = 212, Code = "UKR", Name = "乌克兰" });
            //datas.Add(new Country() { Id = 213, Code = "URY", Name = "乌拉圭" });
            //datas.Add(new Country() { Id = 214, Code = "UZB", Name = "乌兹别克斯坦" });
            //datas.Add(new Country() { Id = 215, Code = "ESP", Name = "西班牙" });
            //datas.Add(new Country() { Id = 216, Code = "GRC", Name = "希腊" });
            //datas.Add(new Country() { Id = 217, Code = "SGP", Name = "新加坡" });
            //datas.Add(new Country() { Id = 218, Code = "NCL", Name = "新喀里多尼亚" });
            //datas.Add(new Country() { Id = 219, Code = "NZL", Name = "新西兰" });
            //datas.Add(new Country() { Id = 220, Code = "HUN", Name = "匈牙利" });
            //datas.Add(new Country() { Id = 221, Code = "SYR", Name = "叙利亚" });
            //datas.Add(new Country() { Id = 222, Code = "JAM", Name = "牙买加" });
            //datas.Add(new Country() { Id = 223, Code = "ARM", Name = "亚美尼亚" });
            //datas.Add(new Country() { Id = 224, Code = "YEM", Name = "也门" });
            //datas.Add(new Country() { Id = 225, Code = "IRQ", Name = "伊拉克" });
            //datas.Add(new Country() { Id = 226, Code = "IRN", Name = "伊朗" });
            //datas.Add(new Country() { Id = 227, Code = "ISR", Name = "以色列" });
            //datas.Add(new Country() { Id = 228, Code = "ITA", Name = "意大利" });
            //datas.Add(new Country() { Id = 229, Code = "IND", Name = "印度" });
            //datas.Add(new Country() { Id = 230, Code = "IDN", Name = "印度尼西亚" });
            //datas.Add(new Country() { Id = 231, Code = "GBR", Name = "英国" });
            //datas.Add(new Country() { Id = 232, Code = "IOT", Name = "英属印度洋领地" });
            //datas.Add(new Country() { Id = 233, Code = "JOR", Name = "约旦" });
            //datas.Add(new Country() { Id = 234, Code = "VNM", Name = "越南" });
            //datas.Add(new Country() { Id = 235, Code = "ZMB", Name = "赞比亚" });
            //datas.Add(new Country() { Id = 236, Code = "JEY", Name = "泽西岛" });
            //datas.Add(new Country() { Id = 237, Code = "TCD", Name = "乍得" });
            //datas.Add(new Country() { Id = 238, Code = "GIB", Name = "直布罗陀" });
            //datas.Add(new Country() { Id = 239, Code = "CHL", Name = "智利" });
            //datas.Add(new Country() { Id = 240, Code = "CAF", Name = "中非共和国" });

            #endregion 数据

            return datas;
        }
    }
}